# 在一个栈中有一个1-n的排列(即序列的长度为n，且1-n中每个元素只出现一次)，
# 现在你需要把元素按照一定顺序取出，因为这是一个栈，你不能直接从中拿走某个元素，
# 你需要先拿走排在该元素之前的元素，然后将目标元素取出，再把这个元素之前取出的多余元素按照任意顺序放回，
# 已知拿出和放回一个元素花费的时间均为1。
#
# 如原序列是[1,2,3,4],如果我们要拿出元素3，则需要先把1，2，3拿出
# 然后再将1，2放回，总耗时是5。当然放回后的顺序可以是[2,1,4],也可以是[1,2,4]。
#
# 现在拿出序列的顺序是已知的，请你求出拿出每一个元素的最小时间是多少。
# 例如上面的例子，我第二个想拿出的元素是2，
# 如果放回序列是[1,2,4]则所需时间是3，如果放回序列是[2,1,4]则所需时间是1。

# 输入：第一行为栈中的元素个数，第二行为栈中的初始排列，第三行为取元素的顺序
# 示例输入：
# 3
# 3 2 1
# 3 1 2
# 输出
# 1
# 3
# 1


N = int(input())
sequence = list(map(int, input().split()))
taken_order = list(map(int, input().split()))
# 思路：取出的元素放回时，按照taken_order中的顺序倒序放
# N = 3
# sequence = [1, 2, 3, 4]
# taken_order = [3, 2, 1, 4]
taken_value = []  # 已经取好的data
current = []  # 为了取当前这个data，取出来的sequence
new_sequence = sequence  # 放回后的新sequence
for value in taken_order:
    taken_value.append(value)
    value_index = new_sequence.index(value)
    print((value_index + 1) * 2 - 1)
    current = new_sequence[0:value_index]
    # print(current)
    current.sort(key=taken_order.index)
    # print(current)
    new_sequence = current + new_sequence[value_index + 1:]
    # print(new_sequence)
